
官网文档：https://www.elastic.co/guide/cn/elasticsearch/guide/current/getting-started.html
&nbsp;
es中的索引、类型、文档可以一一和关系型数据库中的概念去对应。

&nbsp;
在本地部署三个es程序，将会自动水平扩容。任何一个节点挂掉，在其他节点都有备份数据保证分片数据的完整性。

&nbsp;
主分片的数目在索引创建时就已经确定了下来。一般我们给一个索引分配5个主分片，一个副本。但当你拥有越多的副本分片时，也将拥有越高的吞吐量（前提是增加机器）。
&nbsp;
REST设置命令

/index/_settings // 如果对所有索引，用 /_all/_settings
{"number_of_replicas":1}    // 副本数
{"refresh_interval": "10s"}    // 刷新时间

&nbsp;
网页加载性能上报，es近实时搜索优化实践：（反复调研测试了一个礼拜才得出的精辟结论）
node接收端缓存800条数据，统一bulk到es；
es全局设置{ refresh_interval: 10s }，提升内存刷新时间。
&nbsp;
聚合
按pageId做聚合（注意在terms里面设置size！—— 被坑惨过）

aggs: {
  mypageId: {
    terms: {
      size: 1000,
      field: 'pageId.keyword'
    }
  }
}


{
  "size": 0,
  "aggs": {
    "pageIds": {
      "terms": {
        "size": 100,
        "field": "pageId.keyword"
      }
    }
  }
}

&nbsp;
查询指纹用户匹配

http://10.10.19.29:9200/

finger-query-2019.03.17/_search

{"size":1,"aggs":{"users":{"terms":{"size":100,"field":"matched"}}}}

&nbsp;
查询页面聚合

{
  "size": 100,
  "aggs": {
    "pages": {
      "terms": {
        "size": 100,
        "field": "pageId"
      }
    }
  }
}

&nbsp;
精确查询

{
  "query": {
    "bool": {
      "filter": {
        "term": {
          "pageId": "planting_v2_2_1"
        }
      }
    }
  }
}

&nbsp;
去重

{
  "query": {
    "match_all": {}
  },
  "collapse": {
    "field": "pageId.keyword"
  }
}

&nbsp;
按类型统计个数

{
  "size": 0,
  "aggs": {
    "group_by_RESOURCE_FORMAT": {
      "terms": {
        "field": "iswebp.keyword"
      }
    }
  }
}

&nbsp;
